{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# AutoEncoder\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Autoencoder 是一種無監督 (unsupervised) 的訓練方式，也就是說在訓練的時候是不需要給定目標的，那它是怎麼做到的呢？\n",
    "\n",
    "在 Hinton 的開山 [paper]( [Reducing the Dimensionality of Data with Neural Networks](https://www.cs.toronto.edu/~hinton/science.pdf)) ．它的概念可以從以下的圖來說明．可以看到有兩個部分 **Encoder** 以及 **Decoder**，而中間有一個重疊的 **code layer**．模型輸入是從 Encoder 輸入，輸出則是 Decoder 輸出．而 Encoder 中有許多的 hidden layer (隱層)，其中節點數量是遞減的；相對應的 Decoder 則是遞增的．\n",
    "\n",
    "在這樣對稱的網路結構中，給定的訓練條件是輸出越接近輸入越好，\n",
    "$$\n",
    "x : input of network \\\\\n",
    "\\hat{x} : output of network \\\\\n",
    "h(x) : hidden layer function \\\\\n",
    "x \\equiv \\hat{x} = h(x)\n",
    "$$\n",
    "\n",
    "\n",
    "![](http://imgur.com/WnzC82f.jpg) \n",
    "\n",
    "圖片來自 Hinton 的 paper [Reducing the Dimensionality of Data with Neural Networks](https://www.cs.toronto.edu/~hinton/science.pdf)\n",
    "\n",
    "訓練的過程用 `backpropagation` 即可，而當訓練完成以後，我們把 Decoder 移除，只剩下 Encoder (包含 Code layer)．\n",
    "\n",
    "## 無監督學習\n",
    "\n",
    "很有趣的如果只剩下 Encoder，可以看到它有很類似 `PCA` 的 `Dimension Reduction` 效果．因為 2000 維輸入變成了 30 維．不同的是它是一個非線性的降維方法取出了原始輸入的必要特徵．\n",
    "\n",
    "來看看取出的特徵和 `PCA` 的做對照：\n",
    "\n",
    "第一列為原始圖片\n",
    "\n",
    "第二列為 Autoencoder 降維結果\n",
    "\n",
    "第三列為 PCA 降維結果\n",
    "\n",
    "![](http://imgur.com/9QNBD27.jpg)\n",
    "\n",
    "圖片來自 Hinton 的 paper [Reducing the Dimensionality of Data with Neural Networks](https://www.cs.toronto.edu/~hinton/science.pdf)\n",
    "\n",
    "可以看到 `Autoencoder` 的效果比 `PCA` 來得好．\n",
    "\n",
    "那如果用 MNIST 的資料投影到二維的視覺化圖形來看，左邊是 `PCA`，右邊是 `Autoencoder`，也可以看到它比較成功的輸入依據特徵不同做分類．但這段過程都是無監督的情下完成的，也可以說是 \n",
    "\n",
    "> **它自動地學會了如何區分每個手寫數字**\n",
    "\n",
    "![](http://imgur.com/VX4oeSa.jpg)\n",
    "\n",
    "而在實用的時候，網路的最後面會接一個 softmax 之類的分類器，因為理論上已經找出了輸入的特徵，這時候加上分類器，才是人類真正告訴它你分類出的結果是什麼．\n",
    "\n",
    "## 實作 Autoencoder"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "mnist = input_data.read_data_sets(\"MNIST_data/\", one_hot = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def weight_variable(shape, name):\n",
    "    return tf.Variable(tf.truncated_normal(shape = shape, stddev = 0.1), name)\n",
    "def bias_variable(shape, name):\n",
    "    return tf.Variable(tf.constant(0.1, shape = shape), name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "初步的構想是建立一個七層的神經網路，在 encoder 維度會從 784 逐步變成 300, 100, 5 (code layer)， decoder 的時候再逐步轉回 100, 300, 784．而這個想法在現在對 tensorflow 比較熟悉的情形下是很容易實現的，以下就是我實現的程式碼片段\n",
    "\n",
    "**input -> 784 -> 300 -> 100 -> 5 (code layer) -> 100 -> 300 -> 784 -> output**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "x = tf.placeholder(tf.float32, shape = [None, 784])\n",
    "e_W_1 = weight_variable([784, 300], \"e_W_1\")\n",
    "e_b_1 = bias_variable([300], \"e_b_1\")\n",
    "e_layer1 = tf.nn.relu(tf.matmul(x, e_W_1) + e_b_1)\n",
    "e_W_2 = weight_variable([300, 100], \"e_W_2\")\n",
    "e_b_2 = bias_variable([100], \"e_b_2\")\n",
    "e_layer2 = tf.nn.relu(tf.matmul(e_layer1, e_W_2) + e_b_2)\n",
    "e_W_3 = weight_variable([100, 20], \"e_W_3\")\n",
    "e_b_3 = bias_variable([20], \"e_b_3\")\n",
    "code_layer = tf.nn.relu(tf.matmul(e_layer2, e_W_3) + e_b_3)\n",
    "d_W_1 = weight_variable([20, 100], \"d_W_1\")\n",
    "d_b_1 = bias_variable([100], \"d_b_1\")\n",
    "d_layer1 = tf.nn.relu(tf.matmul(code_layer, d_W_1) + d_b_1)\n",
    "d_W_2 = weight_variable([100, 300], \"d_W_2\")\n",
    "d_b_2 = bias_variable([300], \"d_b_2\")\n",
    "d_layer2 = tf.nn.relu(tf.matmul(d_layer1, d_W_2) + d_b_2)\n",
    "d_W_3 = weight_variable([300, 784], \"d_W_3\")\n",
    "d_b_3 = bias_variable([784], \"d_b_3\")\n",
    "output_layer = tf.nn.relu(tf.matmul(d_layer2, d_W_3) + d_b_3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "loss 函數我使用了 `mean square error`，而 optimizer 原本是使用 `GradientDescentOptimizer`，但是做出來的 decode 結果變得非常糟糕 (如下)．後來上網搜尋了以後改用 `RMSPropOptimizer`，以下會隨機選出五個數字來看看所做出來的結果．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "loss = tf.reduce_mean(tf.pow(output_layer - x, 2))\n",
    "optimizer = tf.train.RMSPropOptimizer(0.01).minimize(loss)\n",
    "init_op = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 0, loss 0.154249\n",
      "step 100, loss 0.0938953\n",
      "step 200, loss 0.0631583\n",
      "step 300, loss 0.0638728\n",
      "step 400, loss 0.0447373\n",
      "step 500, loss 0.0425786\n",
      "step 600, loss 0.0370292\n",
      "step 700, loss 0.0394285\n",
      "step 800, loss 0.0413142\n",
      "step 900, loss 0.0367071\n",
      "step 1000, loss 0.0392272\n",
      "step 1100, loss 0.0350341\n",
      "step 1200, loss 0.036414\n",
      "step 1300, loss 0.0374863\n",
      "step 1400, loss 0.0331814\n",
      "step 1500, loss 0.0381974\n",
      "step 1600, loss 0.0351127\n",
      "step 1700, loss 0.0374433\n",
      "step 1800, loss 0.0347769\n",
      "step 1900, loss 0.0375457\n",
      "step 2000, loss 0.0378837\n",
      "step 2100, loss 0.0406829\n",
      "step 2200, loss 0.0348483\n",
      "step 2300, loss 0.0344163\n",
      "step 2400, loss 0.0335558\n",
      "step 2500, loss 0.0333809\n",
      "step 2600, loss 0.030228\n",
      "step 2700, loss 0.0333538\n",
      "step 2800, loss 0.0300326\n",
      "step 2900, loss 0.0313007\n",
      "step 3000, loss 0.0325943\n",
      "step 3100, loss 0.0291298\n",
      "step 3200, loss 0.029259\n",
      "step 3300, loss 0.029667\n",
      "step 3400, loss 0.0284405\n",
      "step 3500, loss 0.0336205\n",
      "step 3600, loss 0.0346183\n",
      "step 3700, loss 0.0361299\n",
      "step 3800, loss 0.036426\n",
      "step 3900, loss 0.0304675\n",
      "step 4000, loss 0.0318735\n",
      "step 4100, loss 0.0310783\n",
      "step 4200, loss 0.0333465\n",
      "step 4300, loss 0.030751\n",
      "step 4400, loss 0.0293944\n",
      "step 4500, loss 0.0314036\n",
      "step 4600, loss 0.035683\n",
      "step 4700, loss 0.0282408\n",
      "step 4800, loss 0.030579\n",
      "step 4900, loss 0.0262065\n",
      "step 5000, loss 0.033858\n",
      "step 5100, loss 0.0319152\n",
      "step 5200, loss 0.0313285\n",
      "step 5300, loss 0.0335166\n",
      "step 5400, loss 0.0321645\n",
      "step 5500, loss 0.0298387\n",
      "step 5600, loss 0.0291673\n",
      "step 5700, loss 0.0369572\n",
      "step 5800, loss 0.0345598\n",
      "step 5900, loss 0.0326751\n",
      "step 6000, loss 0.0332971\n",
      "step 6100, loss 0.0305661\n",
      "step 6200, loss 0.0356756\n",
      "step 6300, loss 0.0339457\n",
      "step 6400, loss 0.0300257\n",
      "step 6500, loss 0.0301127\n",
      "step 6600, loss 0.0316595\n",
      "step 6700, loss 0.0304899\n",
      "step 6800, loss 0.0319861\n",
      "step 6900, loss 0.032973\n",
      "step 7000, loss 0.0308691\n",
      "step 7100, loss 0.0319135\n",
      "step 7200, loss 0.0323307\n",
      "step 7300, loss 0.0345884\n",
      "step 7400, loss 0.0305472\n",
      "step 7500, loss 0.0304301\n",
      "step 7600, loss 0.0383766\n",
      "step 7700, loss 0.0345033\n",
      "step 7800, loss 0.0308742\n",
      "step 7900, loss 0.0333693\n",
      "step 8000, loss 0.0319904\n",
      "step 8100, loss 0.0318597\n",
      "step 8200, loss 0.0333005\n",
      "step 8300, loss 0.0300832\n",
      "step 8400, loss 0.0325518\n",
      "step 8500, loss 0.0332775\n",
      "step 8600, loss 0.0306761\n",
      "step 8700, loss 0.0316801\n",
      "step 8800, loss 0.0308505\n",
      "step 8900, loss 0.0330996\n",
      "step 9000, loss 0.0341253\n",
      "step 9100, loss 0.0341319\n",
      "step 9200, loss 0.0334614\n",
      "step 9300, loss 0.0290531\n",
      "step 9400, loss 0.0323436\n",
      "step 9500, loss 0.0331529\n",
      "step 9600, loss 0.0308602\n",
      "step 9700, loss 0.0326363\n",
      "step 9800, loss 0.0344703\n",
      "step 9900, loss 0.0323956\n",
      "final loss 0.0315639\n"
     ]
    }
   ],
   "source": [
    "sess = tf.InteractiveSession()\n",
    "sess.run(init_op)\n",
    "for i in range(10000):\n",
    "    batch = mnist.train.next_batch(50)\n",
    "    if i%100 == 0:\n",
    "        print(\"step %d, loss %g\"%(i, loss.eval(feed_dict={x:batch[0]})))\n",
    "    optimizer.run(feed_dict={x: batch[0]})\n",
    "    \n",
    "print(\"final loss %g\" % loss.eval(feed_dict={x: mnist.test.images}))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n4yY5AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef4ec790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAFdCAYAAADSR9wBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAFVBJREFUeJzt3X/sXXV9x/Hnm59KsTTQtWUWpPyoUrG1lCEMcSU1MqtB\nzBa3jsSp/8yMEUOyuZgsw2m2ZRoJU8fiwub8HUFn1ASBocBWtlItP7S2aiiFlrbfCu1CK20pbT/7\n49xuly9tv5/z/d7b9/fePh/JTbj3vvq978P59tVzzz3n3CilIEnKcVz2AJJ0LLOEJSmRJSxJiSxh\nSUpkCUtSIktYkhJZwpKUyBKWpESWsCQlsoQlKdGkLOGIuD4i1kfE7ohYERG/kT1TL0TETRFxYNRt\nTfZc4xERV0bEdyJiU2c5rjlE5mMRsTkidkXEv0fE+RmzjsdYyxcRnz/Eurwza95aEfGRiFgZETsi\nYmtEfCsi5o7KnBwR/xARz0bEzoj4RkTMyJq5jcrlu3/UetsfEbdmzTzpSjgifg/4FHATsBB4DLg7\nIqanDtY7q4GZwKzO7c2544zbFOBR4HrgZRcgiYg/B/4E+CPgUuB5mvV40tEccgKOuHwd3+Ol63LZ\n0RltQq4EPgO8CXgrcCJwT0S8sitzC/AO4HeAtwC/DnzzKM85XjXLV4B/4v/X3ZnAh4/ynF3TlDKp\nbsAK4O+77gfwNPDh7Nl6sGw3AQ9nz9GH5ToAXDPqsc3AjV33pwK7gfdkz9uj5fs88G/Zs/Vg2aZ3\nlu/NXevpBeDdXZnXdjKXZs870eXrPHYfcHP2bAdvk2pLOCJOBBYB3z/4WGn+r90LXJ41V49d0HmL\nuy4ivhwRZ2UP1GsRMYdmC6N7Pe4AHmJ41iPA4s5b3p9FxK0RcXr2QOMwjWbLcHvn/iLgBF667n4O\nbGAw193o5Tvouoh4JiJ+EhF/M2pL+ag6IeuFD2M6cDywddTjW2n+NR50K4D3AT+neQv0UeA/IuKi\nUsrziXP12iyaX/xDrcdZR3+cvvgezVv09cB5wN8Cd0bE5Z0Nh0kvIoJm18PyUsrBzyZmAXs7/2h2\nG7h1d5jlA/gK8BTNu7X5wCeAucDvHvUhmXwlfDjB4ffLDYxSyt1dd1dHxEqaX4b30Ly9HXZDsR4B\nSim3d939aUT8BFgHLKZ5uzsIbgXmUfe5xCCuu4PLd0X3g6WU27ru/jQiRoB7I2JOKWX90RwQJt8H\nc88C+2l2mHebwcu3qgZeKeU54BfAwBw1UGmE5i/tMbEeATp/eZ9lQNZlRHwWWAosLqVs7npqBDgp\nIqaO+iMDte5GLd+WMeIP0fy+pqy7SVXCpZQXgVXAkoOPdd5SLAH+K2uufomIU2neyo71SzJQOoU0\nwkvX41SaT6yHbj0CRMRs4AwGYF12CupdwFWllA2jnl4F7OOl624ucDbw30dtyAkYY/kOZSHNVn7K\nupuMuyNuBr4QEauAlcCNwCnAv2YO1QsR8UnguzS7IF4N/BXNL/zXMucaj4iYQrPlEJ2Hzo2IBcD2\nUspGmn1xfxERjwNPAh+nOcrl2wnjtnak5evcbqLZJzzSyf0dzbuau1/+0yaPzvGwy4BrgOcj4uC7\nledKKXtKKTsi4p+BmyPif4CdwKeBB0spK3OmrjfW8kXEucAfAHcC24AFNJ3zQClldcbM6YdnHOaw\nkj+m+Yu7m+Zf30uyZ+rRcn2Npoh203za/FVgTvZc41yW36I59Gf/qNu/dGU+SvPhxy6acjo/e+5e\nLB/wCuAumgLeAzwB/CPwa9lzVyzXoZZpP/DerszJNMfaPktTwncAM7Jn78XyAbOB+4FnOr+XP6f5\nUPXUrJmjM5gkKcGk2icsSccaS1iSElnCkpTIEpakRJawJCWyhCUpUfrJGhFxBnA1zXHBe3KnkaSe\neAVwDnB3KWXbkYJ9K+GIuB74U5orLz0G3FBK+eEholfTXNVIkobNdTQnZR1WX3ZHtPx2jCf7MYMk\nTQJPjhXo1z7hG4HPlVK+WEr5GfBBmlMEP3CIrLsgJA2rMfut5yV8jHw7hiT1RD+2hI/07RgDdWV+\nSeq3o3mI2iBemV+S+qofJXxMfTuGJE1Ez0u4HGPfjiFJE9Gv44SH9tsxJKmX+lLCpZTbO8cEf4xm\nt8SjwNWllGf68XqSNKjSv1kjIi6m2X0hScNmUSnl4SMFvICPJCWyhCUpkSUsSYksYUlKZAlLUiJL\nWJISWcKSlMgSlqRElrAkJbKEJSmRJSxJiSxhSUpkCUtSIktYkhJZwpKUyBKWpESWsCQlsoQlKZEl\nLEmJLGFJSmQJS1KivnzlvQbbJZdcUp2dPn16dXbXrl3V2b1791ZnN23aVJ3dsmVLdRZg3759rfJS\nW24JS1IiS1iSElnCkpTIEpakRJawJCWyhCUpkSUsSYksYUlKZAlLUiJLWJISedryAHv3u99dnb3i\niiuqs29/+9urs/PmzavO7t69uzo7MjJSnd2wYUN1ds2aNdVZgEceeaQ6u3bt2ursj370o+rsnj17\nqrMaPG4JS1IiS1iSElnCkpTIEpakRJawJCWyhCUpkSUsSYksYUlKZAlLUiJLWJISWcKSlKjn146I\niJuAm0Y9/LNSSv1FBlTl3HPPrc4uWLCgOnvyySdXZ3fu3FmdPfHEE6uz55xzTnX29NNPr86edtpp\n1VmAiKjO7tixozrb5toYjz/+eHVWg6dfF/BZDSwBDv4G7+vT60jSQOtXCe8rpTzTp58tSUOjX/uE\nL4iITRGxLiK+HBFn9el1JGmg9aOEVwDvA64GPgjMAf4jIqb04bUkaaD1fHdEKeXurrurI2Il8BTw\nHuDzvX49SRpkfT9ErZTyHPAL4Px+v5YkDZq+l3BEnAqcB2zp92tJ0qDpeQlHxCcj4i0R8ZqI+E3g\nWzSHqH2t168lSYOuH4eozQa+CpwBPAMsBy4rpWzrw2tJ0kDrxwdzy3r9MyVpWPmV95NMm9NqH3ro\noers1q1bq7OvetWrqrNtTnF+8cUXq7P79tWfZDlvXv0Z8W1PW25zqvXs2bOrs2vXrm01h4aXF/CR\npESWsCQlsoQlKZElLEmJLGFJSmQJS1IiS1iSElnCkpTIEpakRJawJCWKUkruABEXA6tSh9BLtDm1\n97nnnuvjJHVe//rXV2ff9ra3tfrZr33ta6uzbb6Zefny5dXZL33pS9VZTTqLSikPHynglrAkJbKE\nJSmRJSxJiSxhSUpkCUtSIktYkhJZwpKUyBKWpESWsCQlsoQlKZHftqyXmQynIrfxwgsvVGfnzJnT\n6mdPnz69Ort79+7qbJuZNdzcEpakRJawJCWyhCUpkSUsSYksYUlKZAlLUiJLWJISWcKSlMgSlqRE\nlrAkJfK0ZU1KU6dOrc4uWbKkOjt79uxWcxx3XP12yvbt26uzmzdvbjWHhpdbwpKUyBKWpESWsCQl\nsoQlKZElLEmJLGFJSmQJS1IiS1iSElnCkpTIEpakRJ62rKOmzSnDy5Ytq85eccUV1dkZM2ZUZwFG\nRkaqs6tWrarOLl++vNUcGl6tt4Qj4sqI+E5EbIqIAxFxzSEyH4uIzRGxKyL+PSLO7824kjRcxrM7\nYgrwKHA9UEY/GRF/DvwJ8EfApcDzwN0RcdIE5pSkodR6d0Qp5S7gLoCIiENEPgR8vJTy3U7mvcBW\n4Frg9vGPKknDp6cfzEXEHGAW8P2Dj5VSdgAPAZf38rUkaRj0+uiIWTS7KLaOenxr5zlJUpejdYha\ncIj9x5J0rOt1CY/QFO7MUY/P4OVbx5J0zOtpCZdS1tMU8f9930xETAXeBPxXL19LkoZB66MjImIK\ncD7NFi/AuRGxANheStkI3AL8RUQ8DjwJfBx4Gvh2TyaWpCEynjPmLgHuo9nHW4BPdR7/AvCBUson\nIuIU4HPANOA/gbeXUvb2YF5JGirjOU74AcbYjVFK+Sjw0fGNpEFy3XXXVWeXLl1anT377LOrs2ec\ncUZ1dtu2bdVZgE2bNlVnX3zxxersWWedVZ3duHFjdVaDxwv4SFIiS1iSElnCkpTIEpakRJawJCWy\nhCUpkSUsSYksYUlKZAlLUiJLWJIS+W3Lepl3vvOd1dnFixdXZ+fMmVOdnTZtWnV2z5491dn9+/dX\nZwHmz59fnX3Na15TnX3jG99YnV23bl119rbbbqvOHjhwoDqr/nFLWJISWcKSlMgSlqRElrAkJbKE\nJSmRJSxJiSxhSUpkCUtSIktYkhJZwpKUyNOWNSFPPPFEdbaUUp3dt29fdfa44+q3JdqcDg1w4YUX\nVmcvu+yy6uxVV11Vnf3hD39YnT3llFOqs7fcckt1Vv3jlrAkJbKEJSmRJSxJiSxhSUpkCUtSIktY\nkhJZwpKUyBKWpESWsCQlsoQlKZElLEmJvHaEXubBBx+szq5YsaI6O2PGjOrs5s2bq7Ntrh1x8cUX\nV2cBLrjggurstddeW52dN29edfZ1r3tddXbbtm3V2U2bNlVn77jjjuqs2nFLWJISWcKSlMgSlqRE\nlrAkJbKEJSmRJSxJiSxhSUpkCUtSIktYkhJZwpKUKNp8DTlARFwJ/BmwCDgTuLaU8p2u5z8P/OGo\nP3ZXKWXpYX7excCqVkNIk9Cll15anb3hhhuqs5dddll1du/evdXZe+65pzp74403Vmf1EotKKQ8f\nKTCeLeEpwKPA9cDhGvx7wExgVue2bByvI0lDr/UFfEopdwF3AUREHCb2QinlmYkMJknHgn7tE14c\nEVsj4mcRcWtEnN6n15GkgdaPS1l+D/gmsB44D/hb4M6IuLy03QEtSUOu5yVcSrm96+5PI+InwDpg\nMXBfr19PkgZZ3w9RK6WsB54Fzu/3a0nSoOl7CUfEbOAMYEu/X0uSBk3r3RERMYVmq/bgkRHnRsQC\nYHvndhPNPuGRTu7vgF8Ad/diYEkaJuPZJ3wJzb7d0rl9qvP4F4A/BuYD7wWmAZtpyvcvSykvTnha\nSRoy4zlO+AGOvBvjt8c/jiQdW/y2ZalHVq5cWZ298847q7NnnnlmdXbu3LnV2VNPPbU6e9FFF1Vn\nV69eXZ2VF/CRpFSWsCQlsoQlKZElLEmJLGFJSmQJS1IiS1iSElnCkpTIEpakRJawJCXytOVJ5rjj\n6v9dPHDgQB8nUT9t2LChOrt+/frqbJtTnLdv316dPemkk6qzasctYUlKZAlLUiJLWJISWcKSlMgS\nlqRElrAkJbKEJSmRJSxJiSxhSUpkCUtSIk9bnmRmzZpVnb388surs8cff3x19vbbb6/O6v/NnDmz\nOrtw4cLq7JQpU6qzO3furM5GRHV2165d1Vm145awJCWyhCUpkSUsSYksYUlKZAlLUiJLWJISWcKS\nlMgSlqRElrAkJbKEJSmRpy1PMrNnz67OXnjhhdXZqVOnVmfbfLPuihUrqrMjIyPV2Tan1LY5VfeU\nU06pzkK7U8PbnIq8aNGi6uzcuXOrszt27KjObty4sTr79NNPV2fVjlvCkpTIEpakRJawJCWyhCUp\nkSUsSYksYUlKZAlLUiJLWJISWcKSlMgSlqREnrY8yaxbt646u2XLlurs/Pnzq7MXXXRRdXbp0qXV\n2R//+MfV2fXr11dnp0+fXp1tc1p42/yrX/3q6uzZZ5/dao5aP/jBD6qz9913X3X2V7/61XjGUYVW\nW8IR8ZGIWBkROyJia0R8KyLmjsqcHBH/EBHPRsTOiPhGRMzo7diSNBza7o64EvgM8CbgrcCJwD0R\n8cquzC3AO4DfAd4C/DrwzYmPKknDp9XuiFLKS957RsT7gF8Ci4DlETEV+ADw+6WUBzqZ9wNrI+LS\nUsrKnkwtSUNioh/MTQMKsL1zfxFNsX//YKCU8nNgA1B/TUBJOkaMu4SjueDrLcDyUsqazsOzgL2l\nlNEXNd3aeU6S1GUiR0fcCswD3lyRDZotZklSl3FtCUfEZ4GlwOJSyuaup0aAkzr7hrvNoNkaliR1\naV3CnQJ+F3BVKWXDqKdXAfuAJV35ucDZwH9PYE5JGkqtdkdExK3AMuAa4PmImNl56rlSyp5Syo6I\n+Gfg5oj4H2An8GngQY+MkKSXa7tP+IM0+3bvH/X4+4Evdv77RmA/8A3gZOAu4PrxjyhJw6vtccJj\n7r4opbwA3NC5qaVt27ZVZ9euXVudfcMb3lCdXbJkydihjgULFlRn582bV51t8w3KpdR/5nvaaadV\nZwFmzpw5dqjj+OOPr862+ebp5cuXV2e//vWvV2c3bdpUnVX/eAEfSUpkCUtSIktYkhJZwpKUyBKW\npESWsCQlsoQlKZElLEmJLGFJSmQJS1Iiv215gD366KPV2Tan306bNq062+a05fPOO686u3///urs\nCSfU/xofOHCgOguwffv2sUMdmzdvHjvUce+991Zn25yKvGbNmrFDmlTcEpakRJawJCWyhCUpkSUs\nSYksYUlKZAlLUiJLWJISWcKSlMgSlqRElrAkJfK05QG2a9eu6myb02TXrVtXnV24cGF1dtGiRdXZ\ns846qzq7Y8eO6uwTTzxRnQV47LHHqrOPPPJIdfapp55qNYeGl1vCkpTIEpakRJawJCWyhCUpkSUs\nSYksYUlKZAlLUiJLWJISWcKSlMgSlqRElrAkJYpSSu4AERcDq1KHkKT+WFRKefhIAbeEJSmRJSxJ\niSxhSUpkCUtSIktYkhJZwpKUyBKWpESWsCQlsoQlKZElLEmJWpVwRHwkIlZGxI6I2BoR34qIuaMy\n90fEga7b/oi4tbdjS9JwaLslfCXwGeBNwFuBE4F7IuKVXZkC/BMwE5gFnAl8eOKjStLwOaFNuJSy\ntPt+RLwP+CWwCFje9dSuUsozE55OkobcRPcJT6PZ8t0+6vHrIuKZiPhJRPzNqC1lSVJHqy3hbhER\nwC3A8lLKmq6nvgI8BWwG5gOfAOYCvzuBOSVpKI27hIFbgXnAFd0PllJu67r704gYAe6NiDmllPUT\neD1JGjrj2h0REZ8FlgKLSylbxog/BARw/nheS5KGWest4U4Bvwv4rVLKhoo/spBmv/FYZS1Jx5xW\nJdw53ncZcA3wfETM7Dz1XCllT0ScC/wBcCewDVgA3Aw8UEpZ3buxJWk4tN0S/iDNVu39ox5/P/BF\nYC/N8cMfAqYAG4E7gL+e0JSSNKTaHid8xH3IpZSngcUTGUiSjiVeO0KSElnCkpTIEpakRJawJCWy\nhCUpkSUsSYksYUlKZAlLUiJLWJISWcKSlMgSlqRElrAkJbKEJSmRJSxJiSxhSUpkCUtSIktYkhJZ\nwpKUyBKWpESWsCQlsoQlKdFkKOFXZA8gSX0yZr9NhhI+J3sASeqTc8YKRCnlKMxxhAEizgCuBp4E\n9qQOI0m98QqaAr67lLLtSMH0EpakY9lk2B0hSccsS1iSElnCkpTIEpakRJawJCWyhCUpkSUsSYn+\nF8uUm+WZXEbRAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef4ba7d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef3ece10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef3de7d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef2f7310>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef358890>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef1f4050>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef184590>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nmEgwypkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef0f3410>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f98ef083950>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "trainimg = mnist.train.images\n",
    "trainlabel = mnist.train.labels\n",
    "output_nd = output_layer.eval(feed_dict = {x: mnist.train.images})\n",
    "for i in [0, 1, 2, 3, 4]:\n",
    "    curr_img   = np.reshape(trainimg[i, :], (28, 28)) # 28 by 28 matrix \n",
    "    ae_img = np.reshape(output_nd[i,:], (28, 28))\n",
    "    curr_label = np.argmax(trainlabel[i, :] ) # Label\n",
    "    plt.matshow(curr_img, cmap=plt.get_cmap('gray'))\n",
    "    plt.matshow(ae_img, cmap=plt.get_cmap('gray'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "而接下來當我想嘗試把 code layer 的維度調整為 2 維來看看\n",
    "## 今日心得\n",
    "而接下來當我想嘗試把 code layer 的維度調整為 2 維來看看\n",
    "\n",
    "![](http://imgur.com/1n9Ljnb.jpg)\n",
    "\n",
    "![](http://imgur.com/cmzYYOS.jpg)\n",
    "\n",
    "![](http://imgur.com/ICUGyPC.jpg)\n",
    "\n",
    "![](http://imgur.com/VpnycII.jpg)\n",
    "\n",
    "我們可以發現完全糊掉了，只用二維來表示輸入數字是不太夠的．更進一步仔細看 code layer 的值，都已經接近零，表示這個網路已經算是死掉了．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def plot_scatter(x, labels, title, txt = False):\n",
    "    plt.title(title)\n",
    "    ax = plt.subplot()\n",
    "    ax.scatter(x[:,0], x[:,1], c = labels)\n",
    "    txts = []\n",
    "    if txt:\n",
    "        for i in range(10):\n",
    "            xtext, ytext = np.median(x[labels == i, :], axis=0)\n",
    "            txt = ax.text(xtext, ytext, str(i), fontsize=24)\n",
    "            txt.set_path_effects([\n",
    "                PathEffects.Stroke(linewidth=5, foreground=\"w\"),\n",
    "                PathEffects.Normal()])\n",
    "            txts.append(txt)\n",
    "    plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
